package com.xinsoft.entity.vo;

import com.xinsoft.constant.Const;
import com.xinsoft.entity.po.CusDocument;
import com.xinsoft.entity.po.SysFileHis;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Objects;

/**
 * 设备故障
 * @TableName cus_device_breakdown
 */
@Data
public class CusDeviceBreakdownVo implements Serializable {
    /**
     * 设备故障ID
     */
    private Integer id;

    /**
     * 关联设备
     */
    private Integer deviceId;

    /**
     * 关联设备名称
     */
    private String deviceName;

    /**
     * 设备编号
     */
    private String deviceNo;

    /**
     * 设备规格型号
     */
    private String deviceAttr;

    /**
     * 安装地点
     */
    private String deviceLocation;

    /**
     * 设备类型（字典）device_type
     */
    private String deviceTypeName;

    /**
     * 故障编号
     */
    private String breakdownCode;

    /**
     * 故障类型
     */
    private Integer breakdownType;

    /**
     * 故障类型名称
     */
    private String breakdownTypeName;

    /**
     * 故障等级
     */
    private Integer breakdownLevel;

    /**
     * 故障等级名称
     */
    private String breakdownLevelName;

    /**
     * 维修责任人
     */
    private Integer repaireUserId;

    /**
     * 维修责任人
     */
    private String repaireUserName;

    /**
     * 维修部门
     */
    private String repaireDeptName;

    /**
     * 要求完成时间
     */
    private Date planTime;

    /**
     * 维修总工时
     */
    private Integer totalHour;

    /**
     * 维修总成本
     */
    private BigDecimal totalCost;

    /**
     * 报修状态 0-暂存 1-已提交待处理 2-已处理待验收 3-已验收 4-超期未处理
     */
    private Integer repaireStatus;

    /**
     * 维修状态 0-暂存 1-已提交待处理 2-已处理待验收 3-已验收 4-超期未处理
     */
    private String repaireStatusName;

    /**
     * 故障描述
     */
    private String breakdownDesc;

    /**
     * 报修时间
     */
    private Date sendRepaireTime;

    /**
     * 创建人ID
     */
    private Integer createBy;

    /**
     * 报修人
     */
    private String createByName;


    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 更新人ID
     */
    private Integer updateBy;

    /**
     * 更新时间
     */
    private Date updateTime;

    /**
     * 验收意见
     */
    private String approveContent;

    /**
     * 文档列表
     */
    private List<CusDocument> cusDocumentListDocument;

    /**
     * 文件列表
     */
    private List<SysFileHis> sysFileHisList;

    /**
     * 维修记录
     */
    private List<CusRepaireVo> repairList;

    /**
     * 使用状况（字典）
     */
    private String useStatusName;

    public String getRepaireStatusName(){
        if(Objects.equals(repaireStatus, Const.RepairStatus.STAGING)){
            return "暂存";
        }
        if(Objects.equals(repaireStatus, Const.RepairStatus.SUBMIT)){
            return "已提交待处理";
        }
        if(Objects.equals(repaireStatus, Const.RepairStatus.PROCESSED_ACCEPTANCE)){
            return "已处理待验收";
        }
        if(Objects.equals(repaireStatus, Const.RepairStatus.ACCEPTED)){
            return "已验收";
        }
        if(Objects.equals(repaireStatus, Const.RepairStatus.OVERDUE)){
            return "超期未处理";
        }
        if(Objects.equals(repaireStatus, Const.RepairStatus.REPORT_TERMINATED)){
            return "终止";
        }
        return "";
    }

}

